Home

Column

Welcome!

This website provides interactive results for the forecasting models explored in the paper Estimating Neighborhood Asking Rents using Scraped Craigslist Rental Listings.

The goal of this research is to a.) understand the temporal dynamics of rent estimates in Seattle and b.) forecast the current quarter’s rent levels based off of the prior periods. The focal series of models regress median one-bedroom rent asked values on different specifications of the panel’s correlation structure (i.e. temporal and spatial). All of the candidate models’ posterior distributions are estimated with integrated nested Laplace approximations (INLA) using the default, weakly-informative priors for all model hyperparameters. Throughout the following analyses, the training data are 2017 Q2 up to the prior quarter (i.e. 2018 Q1). The test period is a forecast for the current period and includes comparison to the appropriate median rent estimates for data observed so far in this period.

Most graphics include some level of interactivity, usually either hover-over tooltip information or a slider to control various views of the graphic. Clicking on cases will highlight data elements in most graphics, and double-clicking will reset the graphic. You can download the source code and data for this project from Github here.

Contact Chris Hess at hesscl@uw.edu for more information about this research.

This page was last updated: 2018-06-02




Table of Contents

Page Description
Distribution density graphic to investigate the distribution of rents among Seattle neighborhoods for each quarter
Panel Time-Series line graphic to show the observed or modeled temporal structure
Spatial Time-Series series of maps to show observed change across time
Model Fit tables of model root mean square error (RMSE), mean absolute error (MAE), and deviance information criterion (DIC) across training and test data

Column

Observed vs. Smoothed Rent Estimates

Distribution

Panel Time-Series

Spatial Time-Series

Column

Observed

Non-Spatial AR(1)

Spatial AR(1)

Spatiotemporal AR(1)

Model Fit

Column

Model Legend

Model abbr. Description
int Quarter fixed intercept
log(med1B) ~ 1 + Qtr
ns Non-spatial tract random effect for each tract, quarter fixed intercept
log(med1B) ~ 1 + Qtr + f(idtract, model = “iid”)
nsar1 Non-spatial tract random effect, AR(1) random effect for prior quarter, i.i.d random effect for current quarter
log(med1B) ~ 1 + f(idtract, model = “iid”) + f(idqtr, model = “ar1”) + , f(idqtr1, model = “iid”)
bym Spatial intrinsic conditional autoregressive (ICAR) tract random-effect, non-spatial i.i.d tract random effect, AR(1) random effect for prior quarter, i.i.d random effect for current quarter
log(med1B) ~ 1 + f(idtract, model = “bym”, scale.model = T, graph = “./output/seatract.graph”) + , f(idqtr, model = “ar1”) + f(idqtr1, model = “iid”)
spt Spatial intrinsic conditional autoregressive (ICAR) tract random-effect, non-spatial i.i.d tract random effect, AR(1) random effect for prior quarter, i.i.d random effect for current quarter, i.i.d. random effect for tract-quarter (space-time interaction)
log(med1B) ~ 1 + f(idtract, model = “bym”, scale.model = T, graph = “./output/seatract.graph”) + , f(idqtr, model = “ar1”) + f(idqtr1, model = “iid”) + f(idtractqtr, , model = “iid”)

Accuracy and Information Criteria

train_test int_rmse ns_rmse nsar1_rmse bym_rmse spt_rmse
Test 306.5368 209.9019 201.5763 195.0790 195.1877
Training 324.3490 136.1696 136.9117 138.9918 137.8714



train_test int_mae ns_mae nsar1_mae bym_mae spt_mae
Test 251.5923 156.54329 148.11222 143.1260 143.1249
Training 258.1041 89.43892 90.29539 93.7141 92.9653



train_test int_DIC ns_DIC nsar1_DIC bym_DIC spt_DIC
Training -168.1242 -679.9016 -679.7958 -685.0496 -686.3064



train_test int_WAIC ns_WAIC nsar1_WAIC bym_WAIC spt_WAIC
Training -167.4504 -661.0794 -660.4344 -666.5979 -668.4401

Hyperparameters

Non-Spatial AR(1)
mean sd 0.025quant 0.5quant 0.975quant mode
Precision for the Gaussian observations 88.0541 6.6442 75.6237 87.8362 101.7756 87.4460
Precision for idtract 29.8512 4.1501 22.4418 29.5975 38.7549 29.1277
Precision for idqtr 7093.9982 12771.7425 518.2153 3528.3813 35685.9016 1263.1158
Rho for idqtr 0.3063 0.3980 -0.5647 0.3682 0.8880 0.6178
Precision for idqtr1 20111.6959 28250.3371 534.8344 10969.1455 94067.7521 1019.0632



Spatial AR(1)
mean sd 0.025quant 0.5quant 0.975quant mode
Precision for the Gaussian observations 87.6247 6.6399 75.2344 87.3952 101.3638 86.9687
Precision for idtract (iid component) 105.4614 29.7560 59.0488 101.4630 175.0913 93.9551
Precision for idtract (spatial component) 75.8740 23.2310 40.2719 72.5594 130.7909 66.3716
Precision for idqtr 6043.1164 10377.7871 430.9875 3093.6402 30020.4575 1078.0703
Rho for idqtr 0.3144 0.4053 -0.5802 0.3826 0.8955 0.6507
Precision for idqtr1 22023.8649 29766.9120 809.7477 12619.9245 100079.8187 1836.2840



Spatiotemporal AR(1)
mean sd 0.025quant 0.5quant 0.975quant mode
Precision for the Gaussian observations 88.0164 6.7028 75.4915 87.7909 101.8727 87.3817
Precision for idtract (iid component) 105.3016 29.6842 59.1616 101.2538 174.8190 93.6625
Precision for idtract (spatial component) 76.4918 23.4589 40.1860 73.2661 131.6474 67.2108
Precision for idqtr 5919.2829 9703.1224 445.3865 3125.2185 28744.1351 1117.7288
Rho for idqtr 0.3141 0.4006 -0.5682 0.3793 0.8928 0.6391
Precision for idqtr1 22275.0245 29674.8303 824.5372 12877.7526 100310.5473 1863.8551
Precision for idtractqtr 18855.0278 18459.0442 1269.3225 13417.5097 67665.9897 3474.1571

Column

Non-Spatial AR(1)

Spatial AR(1)

Spatiotemporal AR(1)